package cn.iocoder.yudao.module.jifenyuan.convert.room;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;

import cn.iocoder.yudao.module.jifenyuan.controller.admin.room.vo.RoomCreateReqVO;
import cn.iocoder.yudao.module.jifenyuan.controller.admin.room.vo.RoomPageReqVO;
import cn.iocoder.yudao.module.jifenyuan.controller.admin.room.vo.RoomRespVO;
import cn.iocoder.yudao.module.jifenyuan.controller.admin.room.vo.RoomUpdateReqVO;
import cn.iocoder.yudao.module.jifenyuan.dal.dataobject.room.RoomWithBindTypeDO;
import cn.iocoder.yudao.module.jifenyuan.dal.dataobject.room.RoomWithUsersDo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.iocoder.yudao.module.jifenyuan.controller.app.room.vo.*;
import cn.iocoder.yudao.module.jifenyuan.dal.dataobject.room.RoomDO;

/**
 * 记分员 房间 Convert
 *
 * @author 芋道源码
 */
@Mapper
public interface RoomConvert {

    RoomConvert INSTANCE = Mappers.getMapper(RoomConvert.class);

    RoomDO convert(AppRoomCreateReqVO bean);

    RoomDO convert(AppRoomUpdateReqVO bean);
    AppRoomCreateReqVO convert(RoomCreateReqVO roomCreateReqVO);
    AppRoomUpdateReqVO convert(RoomUpdateReqVO roomUpdateReqVO);

    AppRoomRespVO convert(RoomDO bean);
    RoomWithUsersDo convert2(RoomDO bean);
    RoomWithBindTypeDO convert3(RoomDO bean);
    AppRoomWithBindTypeRespVO convert4(RoomWithBindTypeDO bean);
    List<AppRoomRespVO> convertList(List<RoomDO> list);

    PageResult<AppRoomRespVO> convertPage(PageResult<RoomDO> page);

    List<AppRoomExcelVO> convertList02(List<RoomDO> list);

}
